#ifndef __GW_INTERFACE_H__
#define __GW_INTERFACE_H__

#include <stdint.h>
#include "dbStatement.h"
#include "hashmap.h"


typedef struct _SERIAL_PARAMS{
    int  baudRate;        //波特率
    int  dataBits;        //数据位
    char parity[8];       //校验位
    int  stopBits;        //停止位
    int  flowCtrl;        //流控
}T_SERIAL_PARAMS;


typedef struct _GW_INTERFACE{
    int64_t  id;                   //接口ID
    char     name[64];             //接口名称
    char     addr[128];            //接口地址
    int      port;                 //接口类型为网口时为端口号， 接口类型为串口时为索引号， 接口类型为载波时为频率
    int      isUsed;               //是否启用 0-未启用 1-启用
    T_SERIAL_PARAMS      params;   //串口参数
    T_GW_INTERFACE_TYPE  ifType;   //接口类型
    struct _GW_INTERFACE* prev;
    struct _GW_INTERFACE* next; //下一个接口
}T_GW_INTERFACE;


/**
 * @brief 测点模型
 */
typedef struct _GW_INTERFACE_LIST{
    int  count;
    T_GW_INTERFACE* tail;
    T_GW_INTERFACE* head;
}T_GW_INTERFACE_LIST;




extern void dbGWInterfaceInit();
extern int  createGWInterfaceTable();
extern int  insertGWInterface(T_GW_INTERFACE* interface);
extern int  replaceGWInterface(T_GW_INTERFACE* interface);
extern int  deleteGWInterface(T_GW_INTERFACE* interface);
extern int  selectGWInterface(const char* sql, T_GW_INTERFACE_LIST* ifList);


#endif // __GW_INTERFACE_H__